package com.idealighter.game.roomcard.games.mustniuniu.convert;

import com.idealighter.game.dictionary.dic.RoomCardMustNiuNiuFeeDic;
import com.idealighter.game.dictionary.domain.RoomCardMustNiuNiuFeeDomain;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.FreeCallBankerGameInfoCfgDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MultipleOptionDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuAdvanceOptionDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuBankerChipDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuBetOptionDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuCallBankerMultipleDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuCardMultipleDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuCardSpecialMultipleDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuExtrBetOptionDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuRoundDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuSeatDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.MustNiuNiuStartOptionDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.NiuNiuBeBankerGameInfoCfgDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.OwnerBeBankerGameInfoCfgDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.RoomCardMustNiuNiuFeeDto;
import com.idealighter.game.roomcard.games.mustniuniu.dto.GameCfgDto.ShowCardCallBankerGameInfoCfgDto;
import com.idealighter.game.roomcard.games.mustniuniu.message.ResGameCfgMsg;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.FreeCallBankerGameInfoCfgPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MultipleOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuAdvanceOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuBankerChipPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuBetOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCallBankerMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCardMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuCardSpecialMultiplePo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuExtrBetOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuRoundPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuSeatPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.MustNiuNiuStartOptionPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.NiuNiuBeBankerGameInfoCfgPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.OwnerBeBankerGameInfoCfgPo;
import com.idealighter.game.roomcard.struct.gamgcfg.value.NiuNiuRoomCardGameCfgValue.ShowCardCallBankerGameInfoCfgPo;
import com.idealighter.game.server.context.ApplicationContext;
import java.util.List;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

@Mapper
public abstract class ResGameCfgMsgConvert {
  public static final ResGameCfgMsgConvert INSTANCE =
      Mappers.getMapper(ResGameCfgMsgConvert.class);

  @Mapping(target = "id", ignore = true)
  public abstract ResGameCfgMsg po2dto(NiuNiuRoomCardGameCfgValue po);

  public abstract NiuNiuBeBankerGameInfoCfgDto po2dto(NiuNiuBeBankerGameInfoCfgPo po);

  public abstract OwnerBeBankerGameInfoCfgDto po2dto(OwnerBeBankerGameInfoCfgPo po);

  public abstract FreeCallBankerGameInfoCfgDto po2dto(FreeCallBankerGameInfoCfgPo po);

  public abstract ShowCardCallBankerGameInfoCfgDto po2dto(ShowCardCallBankerGameInfoCfgPo po);


  //
  public abstract MustNiuNiuBetOptionDto po2dto(MustNiuNiuBetOptionPo po);

  public abstract MustNiuNiuRoundDto po2dto(MustNiuNiuRoundPo po);

  /**
   * @Title po2dto.
   * @Description 费用编号取得费用信息
   * @date 2018年6月14日 下午4:09:40
   * @param feeId .
   * @return .
   */
  public RoomCardMustNiuNiuFeeDto po2dto(Integer feeId) {
    RoomCardMustNiuNiuFeeDic feeDic = ApplicationContext.getBean(RoomCardMustNiuNiuFeeDic.class);
    RoomCardMustNiuNiuFeeDomain feeDomain = feeDic.get(feeId);
    return po2dto(feeDomain);
  }

  public abstract RoomCardMustNiuNiuFeeDto po2dto(RoomCardMustNiuNiuFeeDomain po);

  public abstract MustNiuNiuStartOptionDto po2dto(MustNiuNiuStartOptionPo po);

  public abstract MustNiuNiuSeatDto po2dto(MustNiuNiuSeatPo po);

  public abstract MustNiuNiuExtrBetOptionDto po2dto(MustNiuNiuExtrBetOptionPo po);

  public abstract MustNiuNiuCardMultipleDto po2dto(MustNiuNiuCardMultiplePo po);

  public abstract MustNiuNiuCardSpecialMultipleDto po2dto(MustNiuNiuCardSpecialMultiplePo po);

  public abstract MustNiuNiuAdvanceOptionDto po2dto(MustNiuNiuAdvanceOptionPo po);

  public abstract MustNiuNiuBankerChipDto po2dto(MustNiuNiuBankerChipPo po);

  public abstract MustNiuNiuCallBankerMultipleDto po2dto(MustNiuNiuCallBankerMultiplePo po);

  public abstract MultipleOptionDto po2dto(MultipleOptionPo po);

  public abstract List<MustNiuNiuCardSpecialMultipleDto> po2specialMultipleDto(
      List<MustNiuNiuCardSpecialMultiplePo> po);

  public abstract List<MustNiuNiuAdvanceOptionDto> po2advanceOptionDto(
      List<MustNiuNiuAdvanceOptionPo> po);
}
